import { ModelInfo, LLMProvider } from '../../types/index';

/**
 * 模型服务接口
 */
export interface IModelService {
  /**
   * 获取指定供应商的模型列表
   * @param provider LLM供应商
   * @param forceRefresh 是否强制刷新缓存
   */
  getModels(provider: LLMProvider, forceRefresh?: boolean): Promise<ModelInfo[]>;

  /**
   * 刷新指定供应商的模型列表
   * @param provider LLM供应商
   */
  refreshModels(provider: LLMProvider): Promise<void>;

  /**
   * 获取缓存的模型列表
   * @param provider LLM供应商
   */
  getCachedModels(provider: LLMProvider): ModelInfo[] | null;

  /**
   * 清除指定供应商的模型缓存
   * @param provider LLM供应商
   */
  clearCache(provider: LLMProvider): Promise<void>;

  /**
   * 清除所有模型缓存
   */
  clearAllCache(): Promise<void>;
}